iT邦幫忙

2021 iThome 鐵人賽

DAY 10
1
Modern Web

用Jest和Enzyme來寫React測試吧!!系列 第 10

【Day10】會襄在DOM上面的Ref (•ิ_•ิ)?

  • 分享至 

  • xImage
  •  

Ref 其實就是 Reference(參考)的意思,也就是傳值和傳址裡面的址 (參考位址)

我們的Ref 是會襄在DOM上面的,目的是可以拿取、參照DOM相對應的React元素!

但因為父類別和子類別溝通的方式通常都是用Props和States,比較不建議用Ref,
因為這可能會破壞Component的封裝。

小菜鳥通常會在用focus的時候或是要在某個特定元素下動態加入元素的時候才會去透過Ref來取得DOM的位置。
不然都會盡量用Props和States去實現React。


建立React Ref

  • 透過React下的createRef function 去建立Ref

        constructor(props){
            super(props);
    
            this.quantityInput=React.createRef();
    
    
        }
    
  • 建立玩Ref後,要綁定在html元素上

     						<input type="number" 
                               	   ref={this.quantityInput}
                              />
    
  • 我們可以透過Ref裡的current來拿使用ref system的元素

    const quantityInput=this.quantityInput.current;
    
  • 取得使用ref 元素的值

    const quantityInput=this.quantityInput.current;
    let quantityValue=quantityInput.value;
    
  • 取得ref 元素下的其他元素 (獲取元素後,可以對其作html dom的操作,例如focus,給予style等等...)

     this.quantityInput.current.querySelector('這裡放DOM子元素或父元素(自己想要找的元素階層)')
    

以上是Ref的建立和應用的基礎,但除了小菜鳥說的那兩種情況,基本上還是不建議使用Ref啦~

下一篇我們會來粗略談一下Test方法,
還有我們要寫測試用的框架(Jest)及工具(Enzyme),
希望前十篇的React基礎小菜鳥有講的詳細,

好啦真的要來開始我們的測試了~加油啊!!! ٩(ˊᗜˋ )و 我們已經過了三分之一了~


上一篇
【Day9】React Proptype的驗證及套用方法看這裡 ! ٩(●˙▿˙●)۶…⋆ฺ
下一篇
【Day11】測試方法、Jest、Ezyme的介紹(•‿•)
系列文
用Jest和Enzyme來寫React測試吧!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言